#define _CRT_SECURE_NO_WARNINGS 1

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
//class Solution {
//public:
//    vector<vector<int>> levelOrder(TreeNode* root) {
//        vector<vector<int>> vv;
//        if (root == nullptr)
//        {
//            return vv;
//        }
//        queue<TreeNode*> q;
//        q.push(root);
//        int levelsize = 1;
//        while (!q.empty())
//        {
//            vector<int> v;
//            while (levelsize--)
//            {
//                TreeNode* front = q.front();
//                v.push_back(front->val);
//                if (front->left)
//                {
//                    q.push(front->left);
//                }
//                if (front->right)
//                {
//                    q.push(front->right);
//                }
//                q.pop();
//            }
//            levelsize = q.size();
//            vv.push_back(v);
//        }
//        return vv;
//    }
//};

//#include "stack.h"
#include<stack>
#include<iostream>
using namespace std;
int main()
{
	stack<int> st;
	st.push(1);
	st.push(2);
	cout << st.top() << endl;
	st.pop();
	cout << st.size() << endl;
	st.pop();
	cout << st.empty() << endl;
	return 0;
}


//class MyQueue {
//public:
//    MyQueue() {
//
//    }
//
//    void push(int x) {
//        pushst.push(x);
//    }
//
//    int pop() {
//        if (popst.empty())
//        {
//            while (!pushst.empty())
//            {
//                int x = pushst.top();
//                popst.push(x);
//                pushst.pop();
//            }
//        }
//        int ret = popst.top();
//        popst.pop();
//        return ret;
//    }
//
//    int peek() {
//        if (popst.empty())
//        {
//            while (!pushst.empty())
//            {
//                int x = pushst.top();
//                popst.push(x);
//                pushst.pop();
//            }
//        }
//        int ret = popst.top();
//        return ret;
//    }
//
//    bool empty() {
//        return pushst.empty() && popst.empty();
//    }
//    stack<int> pushst;
//    stack<int> popst;
//
//};

/**
 * Your MyQueue object will be instantiated and called as such:
 * MyQueue* obj = new MyQueue();
 * obj->push(x);
 * int param_2 = obj->pop();
 * int param_3 = obj->peek();
 * bool param_4 = obj->empty();
 */
